Direkt Atamalı Cache

Direkt atamalı (direct-mapped) cache'te her bellek bloğu cache'te sadece bir yere yerleştirilebilir.

Cache Yapısı

Bir cache bloğu üç kısımdan oluşur:

  • Valid Bit: Bloğun geçerli veri içerdiğini gösterir
  • Tag: Hangi bellek adresinin saklandığını belirtir
  • Data: Gerçek veri

Adres Dönüşümü

Bir bellek adresi üç kısma ayrılır:

Bellek Adresi = [Tag | Index | Offset]

- Offset: Blok içindeki byte'ı seçer
- Index: Cache'te hangi satırı kullanacağını belirtir
- Tag: Doğru bloğun saklandığını doğrular

Cache Erişimi

Cache'e erişim adımları:

  • 1. Index bitlerini kullanarak cache satırını seç
  • 2. Valid bit'i kontrol et (geçerli mi?)
  • 3. Tag'i karşılaştır (doğru veri mi?)
  • 4. Eşleşiyorsa HIT, değilse MISS

Cache Boyutlandırma

Cache Boyutu = (2^Index) × Blok Boyutu

Örnek: 10-bit index, 64-byte blok
= 2^10 × 64 = 1024 × 64 = 64 KB cache

Associativity (İlişkilendirme)

  • Direct-Mapped: Her adres 1 yere gidebilir
  • 2-way Set Associative: Her adres 2 yere gidebilir
  • 4-way Set Associative: Her adres 4 yere gidebilir
  • Fully Associative: Her adres herhangi bir yere gidebilir

Replacement Politikaları

Cache dolduğunda hangi bloğun çıkarılacağı:

  • LRU (Least Recently Used): En az kullanılanı çıkar
  • FIFO (First In First Out): En eskiyi çıkar
  • Random: Rastgele seç

Soru 1: Direkt atamalı cache'te her bellek bloğu kaç yere gidebilir?

  • A) Herhangi bir yere
  • B) 2 yere
  • C) 4 yere
  • D) Sadece 1 yere

Soru 2: Cache bloğundaki Valid Bit ne işe yarar?

  • A) Veri boyutunu gösterir
  • B) Bloğun geçerli veri içerdiğini gösterir
  • C) Adresi saklar
  • D) Hız bilgisi

Soru 3: Cache bloğundaki Tag ne içerir?

  • A) Veri boyutu
  • B) Hangi bellek adresinin saklandığı
  • C) Hız bilgisi
  • D) Zaman damgası

Soru 4: Bellek adresi kaç kısma ayrılır?

  • A) 2 (Tag, Data)
  • B) 3 (Tag, Index, Offset)
  • C) 4 (Tag, Index, Offset, Valid)
  • D) 1 (Adres)

Soru 5: Index bitleri ne işe yarar?

  • A) Bloğu doğrular
  • B) Cache'te hangi satırı kullanacağını belirtir
  • C) Byte seçer
  • D) Hız belirler

Soru 6: Offset ne işe yarar?

  • A) Cache satırı seçer
  • B) Tag doğrular
  • C) Blok içindeki byte'ı seçer
  • D) Adres hesaplar

Soru 7: 2-way Set Associative cache'te her adres kaç yere gidebilir?

  • A) 1
  • B) 2
  • C) 4
  • D) Sınırsız

Soru 8: LRU replacement policy ne demektir?

  • A) En eski bloğu çıkar
  • B) En az kullanılanı çıkar
  • C) Rastgele çıkar
  • D) En yeniyi çıkar

Soru 9: Fully Associative cache'in özelliği nedir?

  • A) Sabit yerleşim
  • B) 2 seçenek
  • C) Her adres herhangi bir yere gidebilir
  • D) 4 seçenek

Soru 10: 10-bit index ve 64-byte blok boyutu ile cache boyutu ne olur?

  • A) 32 KB
  • B) 64 KB
  • C) 128 KB
  • D) 256 KB
Direct-Mapped
Her adres sadece 1 yere yerleştirilebilir
Valid Bit
Bloğun geçerli veri içerip içermediğini gösterir
Tag
Hangi bellek adresinin saklandığını belirtir
Index
Cache'te hangi satırın kullanılacağını belirler
Offset
Blok içinde hangi byte'ın okunacağını seçer
Adres yapısı
[Tag | Index | Offset]
Cache erişim
1.Index seç 2.Valid kontrol 3.Tag karşılaştır
2-way Set Assoc
Her adres 2 alternatif yere gidebilir
4-way Set Assoc
Her adres 4 alternatif yere gidebilir
Fully Associative
Her adres herhangi bir yere gidebilir
LRU
Least Recently Used - En az kullanılanı çıkar
FIFO
First In First Out - En eskiyi çıkar
Random
Rastgele blok seçerek değiştir
Associativity
Bir adresin kaç farklı yere gidebileceği
Cache boyutu
2^Index × Blok_Boyutu